Not applicable.
Not applicable.
1. Field of the Invention
The present invention generally relates to updating system read only memory (xe2x80x9cROMxe2x80x9d) configuration information. More particularly, the invention relates to updating system ROM configuration information using non-volatile random access memory.
2. Background of the Invention
It is, or is becoming, commonplace for system configuration information for a computer to be stored in a read only memory (xe2x80x9cROMxe2x80x9d). Most, of not all, computers have at least one ROM device. At least one of the ROM devices is commonly referred to as the xe2x80x9csystem ROMxe2x80x9d or xe2x80x9cBIOS ROM.xe2x80x9d xe2x80x9cBIOSxe2x80x9d refers to the Basic Input/Output System. BIOS comprises executable code that permits control over various low level functions in the computer such as access to a floppy disk and other types of storage devices. The BIOS firmware is stored in the system ROM. During boot-up, the computer""s CPU typically copies the BIOS firmware to main system memory. Subsequent uses of BIOS are made from the copy stored in main system memory.
Many computers also store configuration information on the system ROM. Such configuration information may include information regarding the various types of option boards the computer supports. The option board information generally includes a board identifier (xe2x80x9cIDxe2x80x9d) and corresponding information the computer needs to be compatible with the board. For example, the information may include interrupt settings, port input/output (xe2x80x9cI/Oxe2x80x9d) values, etc.
Although a generally acceptable way to provide board configuration information, a ROM-based configuration technique has a significant downside. The downside is that whenever a new board is developed by the computer manufacturer or a third party, the system ROM must be re-flashed. Re-flashing a ROM generally requires taking the computer off-line, erasing the ROM and writing the entire ROM device with the old information just erased and with the new information, and retesting the system. Rewriting the entire ROM device is typically required even though only a portion of the information requires updating. Flashing a ROM is generally time consuming and, particularly in the context of a company or other entity operating dozens, hundreds or even thousands of servers, inconvenient. Once a ROM is re-flashed, the system is typically re-tested and the new ROM firmware validated to ensure the new firmware functions acceptably. The retesting and validation process can take hours, days or even a week or more, particularly for large companies having sophisticated computer systems and software.
Accordingly, a technique or mechanism is needed that can permit system configuration information, such as board information, to be updated without having to re-flash the system ROM. Such a system would avoid the need of having to test system since a new ROM firmware image would not be loaded. Despite the advantages such a system would provide, to date no such system is known to exist.
The problems noted above are solved in large part by a computer system having central processing unit, a read only memory (xe2x80x9cROMxe2x80x9d), a nonvolatile random access memory (xe2x80x9cNVRAMxe2x80x9d), and other common computer components. A table of information is stored in the ROM. The information can relate to configuration data for boards installed in the computer or other types of information. Preferably, each entry in the ROM table includes a board identifier and corresponding text describing the board and/or configuration data for the board (e.g., interrupt settings, port I/O settings, etc.). An extension table is stored in the NVRAM which provides storage capacity for the same type of information in the ROM-based table. The NVRAM-based extension table preferably also includes storage for board identifiers and corresponding configuration information.
When running a setup utility program, the utility preferably first checks the ROM-based board table to determine whether a matching entry is found for each board in the system. If a match is found, the corresponding configuration information is used to configure the system for use of the board. If a match is not found, the utility program then checks the NVRAM extension table for a matching entry. If a match is found, the corresponding configuration information is used. If no match is found in either table, a default setting is used.
This system permits new board entries to be written to the NVRAM memory table rather than flashing a new ROM. If, however, the user desires to flash a new ROM with a new firmware image, the system preferably checks the entries in the NVRAM extension table for duplicates as compared to the new ROM firmware image. Any duplicates preferably are deleted from the NVRAM table to maximize its available capacity.
Because the new configuration information is added to the NVRAM, rather than the ROM being re-flashed in its entirety, the computer system need not be retested and the ROM firmware validated, a process which, as noted above, can be very time consuming. These and other benefits will become apparent upon reviewing the following disclosure.